//[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
/**
 *
 *	@file		swsprite.h
 *	@brief		スプライト表示システム
 *	@author		tomoya takahashi
 *	@data		2005.09.13
 *
 */
//]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
#ifndef __SWSPRITE_H__
#define __SWSPRITE_H__


#include <nnsys.h>

#undef GLOBAL
#ifdef	__SWSPRITE_H_GLOBAL
#define	GLOBAL	/* */
#else
#define	GLOBAL	extern
#endif

//-----------------------------------------------------------------------------
/**
 *					定数宣言
*/
//-----------------------------------------------------------------------------
// UV値設定取得フラグ
enum{
	SWSP_UVUL,		// 左上
	SWSP_UVLR,		// 右下
};

// HVフリップ設定取得フラグ
enum{
	SWSP_FLIPH,		// Hフリップ
	SWSP_FLIPV,		// Vフリップ
};

// 回転角の設定取得フラグ
enum{
	SWSP_ROT_X,		// X軸回転角度
	SWSP_ROT_Y,		// Y軸回転角度
	SWSP_ROT_Z		// X軸回転角度
};


//-----------------------------------------------------------------------------
/**
 *					構造体宣言
*/
//-----------------------------------------------------------------------------
//-------------------------------------
//
//	imageClip用
//	ソフトウェアスプライト描画システム
//	データ格納構造体
//=====================================
typedef struct SWSP_SYS_tag*	SWSP_SYS_PTR;

//-------------------------------------
//
//	キャラクタデータ
//
//=====================================
typedef struct SWSP_CHAR_tag*	SWSP_CHAR_PTR;

//-------------------------------------
//
//	パレットデータ
//
//=====================================
typedef struct SWSP_PLTT_tag*	SWSP_PLTT_PTR;

//-------------------------------------
//
//	ソフトウェアスプライト表示データ
//	を１つにまとめたオブジェクトデータ
//
//=====================================
typedef struct SWSP_OBJ_tag*	SWSP_OBJ_PTR;



//-------------------------------------
//
//	システム登録データ
//
//=====================================
typedef struct {
	int obj_num;		// 表示オブジェクト登録数
	int char_num;		// キャラクタデータ登録数
	int pltt_num;		// パレットデータ登録数
	int heap;			// 使用ヒープ
} SWSP_SYSDATA;

//-------------------------------------
//
//	キャラクタ登録データ
//
//=====================================
typedef struct {
	SWSP_SYS_PTR		s_sys;		// ソフトウェアスプライトシステム
	NNSG2dCharacterData*	res_file;	// キャラクタリソース
} SWSP_CHARDATA;

//-------------------------------------
//
//	パレット登録データ
//
//=====================================
typedef struct {
	SWSP_SYS_PTR	s_sys;		// ソフトウェアスプライトシステム
	NNSG2dPaletteData*	res_file;	// パレットリソース
	u32		load_num;				// 転送パレット数
} SWSP_PLTTDATA;

//-------------------------------------
//
//	ソフトウェアスプライト
//	表示オブジェ登録データ
//
//=====================================
typedef struct {
	SWSP_SYS_PTR	s_sys;	// ソフトウェアスプライトシステム
	SWSP_CHAR_PTR	p_char;	// 使用キャラクタ
	SWSP_PLTT_PTR	p_pltt;	// 使用パレット
	s16					m_x;	// 座標ｘ
	s16					m_y;	// 座標ｙ
	u16					rota;	// 回転
	fx32				alpha;	// 透明値
	int					pri;	// 表示優先順位
	u16					pltt_offs;	// パレットオフセット
} SWSP_ADDDATA;




//-----------------------------------------------------------------------------
/**
 *					プロトタイプ宣言
*/
//-----------------------------------------------------------------------------
//----------------------------------------------------------------------------
/**
 *
 *	@brief	imageClip描画用ソフトウェアシステム初期化
 *
 *	@param	data		システム初期化データ
 *	@param	heap		使用ヒープ
 *
 *	@return	SWSPRITE_PTR	ソフトウェアシステムデータ
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL SWSP_SYS_PTR SWSP_SysInit( const SWSP_SYSDATA* data );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	ソフトウェアスプライトシステム破棄
 *
 *	@param	data	ソフトウェアシステムデータ
 *
 *	@return	none
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_SysDelete( SWSP_SYS_PTR data );

//----------------------------------------------------------------------------
/**
 *
 *	@brief		表示する
 *
 *	@param		data システム内の表示オブジェクトを表示する
 *
 *	@return		none
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_SysDraw( SWSP_SYS_PTR data );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	キャラクタデータの構造体サイズを返す
 *
 *	@param	none
 *
 *	@return	int	サイズ
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL int SWSP_GetCharDataSize( void );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	パレットデータ構造体のサイズを返す
 *
 *	@param	none
 *
 *	@return	int		サイズ
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL int SWSP_GetPlttDataSize( void );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	スプライトデータ構造体のサイズを取得する
 *
 *	@param	none
 *
 *	@return	int		サイズ
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL int SWSP_GetSpriteDataSize( void );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	配列でオブジェクトを格納する領域を用意したときの要素数のデータ取得用関数
 *
 *	@param	obj		オブジェクトポインタを格納している配列
 *	@param	no		取得する要素数
 *
 *	@return	SWSP_CHAR_PTR	要素のデータ
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL SWSP_CHAR_PTR SWSP_GetCharDataNo( SWSP_CHAR_PTR obj, int no );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	配列でオブジェクトを格納する領域を用意したときの要素数のデータ取得用関数
 *
 *	@param	obj		オブジェクトポインタを格納している配列
 *	@param	no		取得する要素数
 *
 *	@return	SWSP_PLTT_PTR	要素のデータ
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL SWSP_PLTT_PTR SWSP_GetPlttDataNo( SWSP_PLTT_PTR obj, int no );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	配列でオブジェクトを格納する領域を用意したときの要素数のデータ取得用関数
 *
 *	@param	obj		オブジェクトポインタを格納している配列
 *	@param	no		取得する要素数
 *
 *	@return	SWSP_OBJ_PTR	要素のデータ
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL SWSP_OBJ_PTR SWSP_GetSpriteDataNo( SWSP_OBJ_PTR obj, int no );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	ソフトウェアスプライト用キャラクタデータを読み込む
 *
 *	@param	data	読み込むキャラクタデータ
 *
 *	@return	SWSP_CHAR_PTR	読み込んだキャラクタデータ
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL SWSP_CHAR_PTR SWSP_CharLoad( const SWSP_CHARDATA* data );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	キャラクタデータ破棄
 *
 *	@param	data	キャラクタデータ
 *
 *	@return	none
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_CharDelete( SWSP_CHAR_PTR data );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	キャラクタデータ全破棄
 *
 *	@param	none
 *
 *	@return	none
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_CharDeleteAll( SWSP_SYS_PTR data );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	ソフトウェアスプライト用パレットデータを読み込む
 *
 *	@param	data	読み込むパレットデータ
 *
 *	@return	SWSP_PLTT_PTR	読み込んだパレットデータ
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL SWSP_PLTT_PTR SWSP_PlttLoad( const SWSP_PLTTDATA* data );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	ソフトウェアスプライト用パレットデータ破棄
 *
 *	@param	data	破棄するパレットデータ
 *
 *	@return	none
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_PlttDelete( SWSP_PLTT_PTR data );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	パレットデータ全破棄
 *
 *	@param	none
 *
 *	@return	none
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_PlttDeleteAll( SWSP_SYS_PTR data );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	ソフトウェアスプライト表示登録
 *
 *	@param	add		登録データ
 *
 *	@return	SWSP_OBJ_PTR	ソフトウェアスプライトオブジェ
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL SWSP_OBJ_PTR SWSP_Add( const SWSP_ADDDATA* add );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	ソフトウェアスプライト表示データ破棄
 *
 *	@param	sp_obj 破棄するソフトウェアスプライトオブジェ
 *
 *	@return
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_Delete( SWSP_OBJ_PTR sp_obj );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	ソフトウェアスプライト表示データ全破棄
 *
 *	@param	none
 *
 *	@return	none
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_DeleteAll( SWSP_SYS_PTR data );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	スプライトの表示/非表示設定
 *
 *	@param	obj		スプライトオブジェクト
 *	@param	draw	表示/表示		(TRUE / FALSE)
 *
 *	@return	none
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_SetSpriteDraw( SWSP_OBJ_PTR obj, BOOL draw );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	スプライトの表示/非表示を取得
 *
 *	@param	obj		スプライトオブジェクト
 *
 *	@retval	TRUE	表示
 *	@retval	FALSE	非表示
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL BOOL SWSP_GetSpriteDraw( SWSP_OBJ_PTR obj );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	スプライト座標設定
 *
 *	@param	obj		オブジェ
 *	@param	x		座標ｘ
 *	@param	y		座標ｙ
 *
 *	@return	none
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_SetSpritePos( SWSP_OBJ_PTR obj, s16 x, s16 y );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	スプライト座標を取得
 *
 *	@param	obj		スプライトオブジェ
 *
 *	@return	NNSG2dSVec2 座標(メンバ s16 x  s16 y)
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL NNSG2dSVec2 SWSP_GetSpritePos( SWSP_OBJ_PTR obj );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	スプライト中心座標設定	(左上座標からの座標)
 *
 *	@param	obj		オブジェ
 *	@param	x		座標ｘ
 *	@param	y		座標ｙ
 *
 *	@return	none
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_SetSpriteCenterPos( SWSP_OBJ_PTR obj, s16 x, s16 y );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	スプライト中心座標を取得 (左上座標からの座標)
 *
 *	@param	obj		スプライトオブジェ
 *
 *	@return	NNSG2dSVec2 座標(メンバ s16 x  s16 y)
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL NNSG2dSVec2 SWSP_GetSpriteCenterPos( SWSP_OBJ_PTR obj );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	拡大縮小値を設定
 *
 *	@param	obj		スプライトオブジェ
 *	@param	x		ｘ拡縮値
 *	@param	y		ｙ拡縮値
 *
 *	@return	none
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_SetSpriteScale( SWSP_OBJ_PTR obj, fx32 x, fx32 y );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	拡大縮小値を取得
 *
 *	@param	obj		スプライトオブジェ
 *	@param	x		ｘ座標取得先
 *	@param	y		ｙ座標取得先
 *
 *	@return	none
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_GetSpriteScale( SWSP_OBJ_PTR obj, fx32* x, fx32* y );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	スプライトサイズを設定
 *
 *	@param	obj		スプライトオブジェ
 *	@param	x		サイズｘ
 *	@param	y		サイズｙ
 *
 *	@return	none
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_SetSpriteSize( SWSP_OBJ_PTR obj, int x, int y );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	スプライトサイズを取得
 *
 *	@param	obj		スプライトオブジェ
 *
 *	@return	NNSG2dSVec2	スプライトサイズ（メンバ s16 x s16 y）
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL NNSG2dSVec2 SWSP_GetSpriteSize( SWSP_OBJ_PTR obj );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	スプライト表示優先順位を設定
 *
 *	@param	obj			スプライトオブジェ
 *	@param	priority	表示優先順位
 *
 *	@return	none
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_SetSpritePriority( SWSP_OBJ_PTR obj, int priority );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	スプライトの表示優先順位を設定
 *
 *	@param	obj		スプライトオブジェ
 *
 *	@return	int		表示優先順位
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL int SWSP_GetSpritePriority( SWSP_OBJ_PTR obj );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	スプライトのα値を設定
 *
 *	@param	obj		スプライトオブジェ
 *	@param	alpha	α値
 *
 *	@return	none
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_SetSpriteAlpha( SWSP_OBJ_PTR obj, u8 alpha );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	スプライトのα値を取得
 *
 *	@param	obj		スプライトオブジェ
 *
 *	@return
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL u8 SWSP_GetSpriteAlpha( SWSP_OBJ_PTR obj );

//----------------------------------------------------------------------------
/**
 *
 *	@brief		スプライトの色を設定
 *
 *	@param	obj			スプライトオブジェ
 *	@param	color		ディフューズカラー
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_SetSpriteDiffColor( SWSP_OBJ_PTR obj, GXRgb color );

//----------------------------------------------------------------------------
/**
 *
 *	@brief		スプライトのディフューズ色を取得
 *
 *	@param	obj			スプライトオブジェ
 *
 *	@retval	カラー
 */
//-----------------------------------------------------------------------------
GLOBAL GXRgb SWSP_GetSpriteDiffColor( SWSP_OBJ_PTR obj );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	スプライトのテクスチャアトリビュートを設定
 *
 *	@param	obj			スプライトオブジェ
 *	@param	tex_attr	テクスチャアトリビュートポインタ
 *
 *	@return	none
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_SetSpriteTexAttr( SWSP_OBJ_PTR obj, NNSG2dImageAttr* tex_attr );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	スプライトのテクスチャアトリビュートを取得
 *
 *	@param	obj		スプライトオブジェ
 *
 *	@return	NNSG2dImageAttr*	テクスチャアトリビュート
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL NNSG2dImageAttr* SWSP_GetSpriteTexAttr( SWSP_OBJ_PTR obj );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	テクスチャアドレス設定
 *
 *	@param	obj			スプライトオブジェ
 *	@param	tex_addr	テクスチャアドレス
 *
 *	@return	none
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_SetSpriteTexAddr( SWSP_OBJ_PTR obj, u32 tex_addr );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	テクスチャアドレスを取得
 *
 *	@param	obj		スプライトオブジェ
 *
 *	@return	u32		テクスチャアドレス
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL u32 SWSP_GetSpriteTexAddr( SWSP_OBJ_PTR obj );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	スプライトのパレットアドレス設定
 *
 *	@param	obj			スプライトオブジェ
 *	@param	pltt_addr	パレットアドレス
 *
 *	@return	none
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_SetSpritePlttAddr( SWSP_OBJ_PTR obj, u32 pltt_addr );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	スプライトのパレットアドレス取得
 *
 *	@param	obj		スプライトオブジェ
 *
 *	@return	u32		パレットアドレス
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL u32 SWSP_GetSpritePlttAddr( SWSP_OBJ_PTR obj );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	パレットオフセット
 *
 *	@param	obj			スプライトオブジェ
 *	@param	pltt_offs	パレットオフセット
 *
 *	@return	none
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_SetSpritePlttOffs( SWSP_OBJ_PTR obj, u32 pltt_offs );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	パレットオフセット取得
 *
 *	@param	obj		スプライトオブジェ
 *
 *	@return	u32		オフセット
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL u32 SWSP_GetSpritePlttOffs( SWSP_OBJ_PTR obj );


//----------------------------------------------------------------------------
/**
 *
 *	@brief	スプライトフリップ設定
 *
 *	@param	obj			スプライトオブジェ
 *	@param	flip_flg	フリップフラグ
 *	@param	flip		フリップさせるか	TRUE　させる　FALSE　させない
 *
 *	@return	none
 *
	// HVフリップ設定取得フラグ
	enum{
		SWSP_FLIPH,		// Hフリップ
		SWSP_FLIPV,		// Vフリップ
	};
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_SetSpriteFlip( SWSP_OBJ_PTR obj, int flip_flg, BOOL flip );

//----------------------------------------------------------------------------
/**
 *
 *	@brief		スプライトのフリップを取得
 *
 *	@param	obj			スプライトオブジェ
 *	@param	flip_flg	HVフリップフラグ
 *
 *	@return	BOOL	TRUE	フリップする	FALSE
 *
	// HVフリップ設定取得フラグ
	enum{
		SWSP_FLIPH,		// Hフリップ
		SWSP_FLIPV,		// Vフリップ
	};
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL BOOL SWSP_GetSpriteFlip( SWSP_OBJ_PTR obj, int flip_flg );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	回転角zを設定
 *
 *	@param	obj			スプライトオブジェ
 *	@param	rota		設定する角度
 *
 *	@return
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_SetSpriteRotZ( SWSP_OBJ_PTR obj, u16 rota );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	回転角度Zを取得
 *
 *	@param	obj			スプライトオブジェ
 *
 *	@return	u16		回転角度
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL u16 SWSP_GetSpriteRotZ( SWSP_OBJ_PTR obj );


#if 0

//----------------------------------------------------------------------------
/**
 *
 *	@brief	スプライトcolorを設定（ポリゴンcolor）
 *
 *	@param	obj		スプライトオブジェ
 *	@param	color	ポリゴンcolor
 *
 *	@return	none
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_SetSpriteColor( SWSP_OBJ_PTR obj, GXRgb color );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	スプライトcolor取得
 *
 *	@param	obj		スプライトオブジェ
 *
 *	@return	GXRgb	colorデータ
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL GXRgb SWSP_GetSpriteColor( SWSP_OBJ_PTR obj );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	スプライトのUV値を設定
 *
 *	@param	obj			スプライトオブジェ
 *	@param	LR_flg		左上　右下フラグ
 *	@param	u			U値	（横）
 *	@param	v			V値	（縦）
 *
 *	@return	none
 *
 *
	// UV値設定取得フラグ
	enum{
		SWSP_UVUL,		// 左上
		SWSP_UVLR,		// 右下
	};
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_SetSpriteUV( SWSP_OBJ_PTR obj, int LR_flg, fx32 u, f32 v );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	スプライトのUV値を取得
 *
 *	@param	obj			スプライトオブジェ
 *	@param	LR_flg		左上、右下フラグ
 *
 *	@return	NNSG2dFVec2 UV値	（メンバ x=u  y=v）
 *
	// UV値設定取得フラグ
	enum{
		SWSP_UVUL,		// 左上
		SWSP_UVLR,		// 右下
	};
 *
 */
//-----------------------------------------------------------------------------
GLOBAL NNSG2dFVec2 SWSP_GetSpriteUV( SWSP_OBJ_PTR obj, int LR_flg  );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	回転の中心を設定
 *
 *	@param	obj		スプライトオブジェ
 *	@param	x		ｘ座標
 *	@param	y		ｙ座標
 *
 *	@return	none
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_SetSpriteRotO( SWSP_OBJ_PTR obj, s16 x, s16 y );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	スプライトの回転中心座標の取得
 *
 *	@param	SWSP_OBJ_PTR obj	スプライトオブジェクト
 *
 *	@return	NNSG2dSVec2		回転中心座標
 *
 *
 */
//-----------------------------------------------------------------------------
GLOBAL NNSG2dSVec2 SWSP_GetSpriteRotO( SWSP_OBJ_PTR obj );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	回転角を設定
 *
 *	@param	obj			スプライトオブジェ
 *	@param	XYZ_flg		回転角軸のフラグ
 *	@param	rota		設定する角度
 *
 *	@return
 *
	// 回転角の設定取得フラグ
	enum{
		SWSP_ROT_X,		// X軸回転角度
		SWSP_ROT_Y,		// Y軸回転角度
		SWSP_ROT_Z		// X軸回転角度
	};
 *
 */
//-----------------------------------------------------------------------------
GLOBAL void SWSP_SetSpriteRot( SWSP_OBJ_PTR obj, int XYZ_flg, u16 rota );

//----------------------------------------------------------------------------
/**
 *
 *	@brief	回転角度を取得
 *
 *	@param	obj			スプライトオブジェ
 *	@param	XYZ_flg		取得する回転角軸のフラグ
 *
 *	@return	u16		回転角度
 *
	// 回転角の設定取得フラグ
	enum{
		SWSP_ROT_X,		// X軸回転角度
		SWSP_ROT_Y,		// Y軸回転角度
		SWSP_ROT_Z		// X軸回転角度
	};
 *
 */
//-----------------------------------------------------------------------------
GLOBAL u16 SWSP_GetSpriteRot( SWSP_OBJ_PTR obj, int XYZ_flg );
#endif


#undef	GLOBAL
#endif		// __SWSPRITE_H__